<?php if ( ! defined('APPPATH')) exit('No direct script access allowed');
class Product extends Bidiots_Admin{
    
        //Khai báo các biến chung
    var $module = 'product';
    var $folder = 'product';
    var $table = 'products';
    
    public function __construct(){
        parent::__construct();
        $this->load->helper('common_helper');
        $this->load->helper('form_helper');
        //Load style css
        $this->template->add_css('/public/admin/css/iframe_style.css');
         $this->template->add_js('/public/ckeditor/ckeditor.js');
    }
    //Danh sách product
    public function listProduct($error_alert = ''){
        $data_list = array();
        //Lấy danh sách product
        $this->load->model('common_model');
        $select_query = 'pro_id,
                        pro_name,
                        pro_cat_id,
                        pro_price,
                        pro_size,
                        pro_summary,
                        pro_hot,
                        pro_hit,
                        pro_active';
        $data_list['list'] = $this->common_model->listing($this->table,$select_query);
        if($error_alert){
            $data_list['error'] = $error_alert;
        }
        $this->template->parse_view('iframe','admin/'.$this->folder.'/listing',$data_list);
        $this->template->render();
    }
    //Thêm mới product
    public function addProduct(){
        $data = array();
        $data['error'] = array();
        $data['success'] = '';
        if(isset($_POST['action'])){
            //Lấy dữ liệu thêm vào
            $pro_name           =   removeHTML(getValue('pro_name','str','POST',''));
            $pro_cat_id         =   getValue('pro_cat_id','int','POST',0);
            $pro_price          =   getValue('pro_price','int','POST',0);
            $pro_size           =   removeHTML(getValue('pro_size','str','POST',''));
            $pro_hot            =   getValue('pro_hot','int','POST',0);
            $pro_summary        =   removeHTML(getValue('pro_summary','str','POST',''));
            $pro_description    =   getValue('pro_description','str','POST','');
            $pro_active         =   1;
            if(!$pro_name){
                $data['error'][] = 'Bạn chưa nhập tên sản phẩm';
            }
            if(!$pro_cat_id){
                $data['error'][] = 'Bạn chưa chọn loại sản phẩm';
            }
            if(!$pro_price){
                $data['error'][] = 'Bạn chưa nhập giá của sản phẩm';
            }
            if(!$pro_size){
                $data['error'][] = 'Bạn chưa nhập kích thước sản phẩm';
            }
            if(!$pro_summary){
                $data['error'][] = 'Bạn chưa nhập mô tả sản phẩm';
            }
            if(!$pro_description){
                $data['error'][] = 'Bạn chưa nhập thông số chi tiết';
            }
            if($pro_name && $pro_cat_id && $pro_price && $pro_size && $pro_summary && $pro_description){
                $array_data = array('pro_name'=>$pro_name,
                                'pro_cat_id'=>$pro_cat_id,
                                'pro_price'=>$pro_price,
                                'pro_size'=>$pro_size,
                                'pro_summary'=>$pro_summary,
                                'pro_description'=>$pro_description,
                                'pro_hot'=>$pro_hot,
                                'pro_active'=>$pro_active);
                $this->load->model('common_model');
                $result = $this->common_model->add($this->table,$array_data);
                if($result){
                    $data['success'] .= 'Thêm thành công';
                }
            }    
        }
        //Đổ dữ liệu về view
        $this->template->parse_view('iframe','admin/'.$this->folder.'/add',$data);
        $this->template->render();
    }
    
    
    //Sửa thông tin product
    public function editProduct(){
        $data = array();
        $data['error'] = array();
        $data['success'] = '';
        if(!isset($_POST['action'])){
        $pro_id = base64_decode(getValue('id','str','GET',''));
        if(!$pro_id || !intval($pro_id)){
            return false;
        }
        //Lấy thông tin về sản phẩm
        $this->load->model('common_model');
        $product = $this->common_model->loadRow('SELECT pro_id,
                                                        pro_name,
                                                        pro_cat_id,
                                                        pro_size,
                                                        pro_price,
                                                        pro_description,
                                                        pro_summary,
                                                        pro_hot,
                                                        pro_active 
                                                 FROM   products 
                                                 WHERE  pro_id = '.$pro_id);
        $data['pro_id'] = $product->pro_id;
        $data['pro_name'] = $product->pro_name;
        $data['pro_cat_id'] = $product->pro_cat_id;
        $data['pro_size'] = $product->pro_size;
        $data['pro_price'] = $product->pro_price;
        $data['pro_description'] = $product->pro_description;
        $data['pro_summary'] = $product->pro_summary;
        $data['pro_hot'] = $product->pro_hot;
        $data['pro_active'] = $product->pro_active;
        //Đổ dữ liệu về view
        $this->template->parse_view('iframe','admin/'.$this->folder.'/edit',$data);
        $this->template->render();
        }
        if(isset($_POST['action'])){
            $pro_id = getValue('record_id','int','POST',0);
            $pro_name = getValue('pro_name','str','POST','');
            $pro_cat_id = getValue('pro_cat_id','int','POST',0);
            $pro_size = getValue('pro_size','str','POST','');
            $pro_price = getValue('pro_price','int','POST',0);
            $pro_summary = getValue('pro_summary','str','POST','');
            $pro_description = getValue('pro_description','int','POST',0);
            $pro_active = getValue('pro_active','int','POST',0);
            $pro_hot = getValue('pro_hot','int','POST',0);
            $array_edit = array('pro_name'=>$pro_name,
                                'pro_cat_id'=>$pro_cat_id,
                                'pro_size'=>$pro_size,
                                'pro_price'=>$pro_price,
                                'pro_summary'=>$pro_summary,
                                'pro_description'=>$pro_description,
                                'pro_hot'=>$pro_hot,
                                'pro_active'=>$pro_active);
            $this->load->model('common_model');
            $result = $this->common_model->edit($this->table,$array_edit,'pro_id ='.$pro_id);
            if($result){
                $this->listProduct();
            }
            else{
                $data['pro_id'] = $pro_id;
                $data['pro_name'] = $pro_name;
                $data['pro_cat_id'] = $pro_cat_id;
                $data['pro_size'] = $pro_size;
                $data['pro_price'] = $pro_price;
                $data['pro_description'] = $pro_description;
                $data['pro_summary'] = $pro_summary;
                $data['pro_hot'] = $pro_hot;
                $data['pro_active'] = $pro_active;
                $data['error'][] = 'Bạn không đủ quyền, vui lòng liên hệ admin';
                $this->template->parse_view('iframe','admin/'.$this->folder.'/edit',$data);
                $this->template->render();
            }
        }
    }
    //Hàm sửa nhanh ở listing - bao gồm sửa hot và active
    public function quickEdit(){
        $permission = $this->checkPermission;
        $result = array();
        
        //Check quyền sửa
        if(!$permission['edit']){
            $result['error'] = 'Bạn không đủ quyền, vui lòng liên hệ với admin';
            $result['success'] = '';
        }
        $id = base64_decode(getValue('id','str','POST',''));
        $action = getValue('action','str','POST','');
        if($action == 'hot'){
            if($permission['edit']){
                $this->load->model('common_model');
                $is_hot = $this->common_model->loadRow('SELECT pro_hot FROM '.$this->table.' WHERE pro_id='.$id)->pro_hot;
                if($this->common_model->edit('products',array('pro_hot'=>!$is_hot),array('pro_id'=>$id))){
                    $result['success'] = 'Success...';
                    $result['error'] = '';
                };
            };    
        }
        elseif($action == 'active'){
            
            $this->load->model('common_model');
            $is_active = $this->common_model->loadRow('SELECT pro_active FROM '.$this->table.' WHERE pro_id='.$id)->pro_active;
            if($this->common_model->edit('products',array('pro_active'=>!$is_active),array('pro_id'=>$id))){
                $result['success'] = 'Success...';
                $result['error'] = '';
            };
        }
        echo json_encode($result);
    }
    
    //Hàm xóa sản phẩm
    public function deleteProduct(){
        //Check quyền xóa 
        $permission = $this->checkPermission;
        $result = array();
        if(!$permission['delete']){
            $result['error'] = 'Bạn không đủ quyền, vui lòng liên hệ với admin';
            $result['success'] = '';
        }
        if($permission['delete']){
            $id = base64_decode(getValue('id','str','POST',''));
            if(is_numeric($id)){
                $this->load->model('common_model');
                if($this->common_model->delete($this->table,array('pro_id'=>$id))){
                    $result['error'] = '';
                    $result['success'] = 'Success...';
                }
                else{
                    $result['error'] = 'Hệ thống đang tạm ngừng cung cấp dịch vụ, vui lòng thử lại sau';
                    $result['success'] = '';
                }
            }
        }
        echo json_encode($result);
    }
}
?>